/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.bfpro.wot.stat;
import java.sql.*;

/**
 *
 * @author fbn
 */
public class Data {

    private Connection conn;

    public Data() throws ClassNotFoundException, SQLException {
        // TODO code application logic here
        // Загрузка драйвера
        Class.forName("org.sqlite.JDBC");
        // Организация соединения
        conn = DriverManager.getConnection("jdbc:sqlite://C:/Temp/~Coding~/Java/wot-stat/wot-stat.sqlite");
        System.out.println("Создали соединение к БД");

    }

    /**
     * Закрыть соединение
     * @throws SQLException
     */
    public void close() throws SQLException {
        conn.close();
    }

    /**
     * Сохранить запись со статистикой
     * @throws SQLException
     */
    public void save(int d, String data) throws SQLException {
        // Объект для sql запросов
        Statement stat = conn.createStatement();

        PreparedStatement prep = conn.prepareStatement("INSERT INTO t_Journal(f_Timestamp,f_Data) VALUES(?,?);");
        prep.setInt(1, d);
        prep.setString(2, data);
        prep.addBatch();
        // Отключение автозаписывания
        conn.setAutoCommit(false);
        // Выполнение пакета
        prep.executeBatch();
        // Включение автозаписывания
        conn.setAutoCommit(true);

        //
        ResultSet rs = stat.executeQuery("select * from t_Journal;");
        while(rs.next()){
            System.out.println("f_Timestamp = " + rs.getString("f_Timestamp"));
            System.out.println("f_Data = " + rs.getString("f_Data"));
        }
        //
        rs.close();
    }

    public void create_db() throws SQLException{
        Statement stat = conn.createStatement();

        stat.execute("CREATE TABLE IF NOT EXISTS t_Journal("
                + "id integer primary key, "
                + "f_Timestamp integer, "
                + "f_Data text);");
    }

}
